This patent document includes an Appendix that contains material that is subject to copyright protection. The copyright owner does not object to reproduction of the patent document as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyrights whatsoever.
The present invention relates generally to automated document processing systems, and more particularly, to methods for and arrangements of multiple types of document processing systems that share a common application programming interface.
Automated document processing systems have been used for a number of years to process checks, remittances, and other forms of documents. Such systems vary in capabilities in terms of document throughput and mechanisms for extracting data. For example, some systems use optical character recognition techniques while other systems use magnetic ink character recognition. Examples of such systems include the DP 30, DP 500, and DP 1800 document processing systems from Unisys Corporation.
Many of today""s systems do not share a common lineage. That is, today""s systems are successors to systems that were developed in different locations by different engineers using different platforms. As a result, DP30 systems evolved to where application programs ran under the Windows and OS/2 operating system environments, DP 500 systems evolved to where application programs ran in a CTOS environment, and DP 1800 systems evolved to where application programs ran on the Motorola 68000 family of microprocessors.
With multiple types of application environments, it is expensive to develop applications for the various document processing systems because each system requires a programmer having a relatively unique skill-set. To assemble a group of programmers who possesses skills for all three platforms has been found to be difficult. Therefore, separate staffs of programmers have been required for the different platforms. This is expensive for vendors of automated document processing systems, as well as for customers who develop custom applications for different types of systems.
The present invention is directed to methods for and arrangements of document processing systems that share a common application programming interface. The common programming interface includes an object interface with properties, methods and events. The properties, methods, and events of the object interface are descriptive of multiple types of document processing systems. Instances of the object interface on multiple types of document processing systems provide a common application programming interface on the multiple types of document processing systems.
In a first aspect of the invention, a document processing system is provided with a generalized programming interface for an application program. The system is comprised of: a first document processor having a first set of capabilities that are accessible via a first set of command codes; an object interface having properties, methods, and events for the first document processor, and having properties, methods, and events for a second document processor having a second set of capabilities; and a track driver coupled to the first document processor and to the object interface, configured and arranged to interface with the first document processor and provide selected ones of the first set of command codes to the first document processor in response to methods initiated via the object interface, and in response to status codes returned from the first document processor, report events to an application program via the object interface.
Another embodiment of a document processing system with a generalized programming interface for an application program is provided in another aspect of the invention. The system is comprised of: a first document processor having a first set of capabilities that are accessible via a first set of command codes; a data processing system having an input/output port and including an object interface having properties, methods, and events for the first document processor, and having properties, methods, and events for a second document processor having a second set of capabilities; and a track driver coupled to the first document processor via the input/output port and to the object interface, configured and arranged to interface with the first document processor and provide selected ones of the first set of command codes to the first document processor in response to methods initiated via the object interface, and in response to status codes returned from the first document processor, report events to an application program via the object interface.
A method for operating a document processing system is yet another aspect of the invention. The method is comprised of the steps of: setting in an object interface values of properties that are associated with the document processing system, the object interface additionally having properties of another different document processing system; invoking methods for controlling operations of the document processing system, wherein the methods are defined in the object interface, and the object interface additionally includes methods for controlling different operations of the different document processing system; and processing events generated by the document processing system and reported via the object interface, the object interface additionally having event definitions for the different document processing system.
In another aspect of the invention, a method is provided for establishing a programming environment for a plurality of document processing systems, each document processing system having a document processor with different capabilities that are accessible via a different set of command codes. The method is comprised of the steps of: defining an object interface having properties, methods, and events that are descriptive of the document processors; establishing a plurality of respective instances of the object interface for the plurality of document processing systems, the instances of the object interface having a common programming interface for implementing application programs; coupling a plurality of respective track drivers to the instances of the object interface, each track driver responsive to methods initiated from the respective instance of the object interface, and configured and arranged to provide predetermined command codes to the document processor and report events back to the object interface.
The above Summary of the Invention is not intended to describe each disclosed embodiment of the present invention. This is the purpose of the figures and of the Detailed Description that follows.